package com.icongyou.enterprise.talent_analysis.service.support;

/**
 * AI客户端接口
 * 封装对外部AI服务(如OpenAI, Claude, 通义千问等)的调用
 */
public interface AIClient {

    /**
     * 生成评分标准
     * 
     * @param prompt 包含维度信息和样本数据的提示词
     * @return AI生成的评分标准(JSON格式)
     */
    String generateScoringStandard(String prompt);

    /**
     * 推荐数据映射
     * 
     * @param prompt 包含维度描述的提示词
     * @return AI推荐的数据字段列表
     */
    String recommendMapping(String prompt);

    /**
     * 评估维度得分
     * 
     * @param prompt 包含学生数据和维度要求的提示词
     * @return 0-5的评分
     */
    String evaluateDimension(String prompt);

    /**
     * 分析文本内容并提取关键信息
     * 
     * @param text 待分析的文本(如教师评语)
     * @param analysisType 分析类型(sentiment/keywords/summary)
     * @return 分析结果
     */
    String analyzeText(String text, String analysisType);
    
    /**
     * 从教师评语中提取关键词（用于词云图）
     * 
     * @param comments 教师评语列表
     * @return JSON格式的关键词及权重 {"关键词1": 权重1, "关键词2": 权重2, ...}
     */
    String extractKeywords(java.util.List<String> comments);
    
    /**
     * 通用对话接口
     * 
     * @param prompt 提示词
     * @return AI的回复
     */
    String chat(String prompt);
}
